/**
 * Description:
 * Class Name:ConnMySql
 * Date:2022/4/3 15:46
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第13章_MySQL数据库和JDBC编程._13_3_JDBC的典型用法._13_3_2_JDBC编程步骤;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class ConnMySql {
    static String url = "jdbc:mysql://localhost:3306/select_test";
    static String user = "root";
    static String pwd = "ltrini38";

    static String temp_select = "select s.*, teacher_name"
            + " from student_table s, teacher_table t"
            + " where t.teacher_id = s.java_teacher;";

    public static void main(String[] args) throws Exception {
        // ① 加载驱动，使用了反射知识，最后一章才将，现在先这么写
        Class.forName("com.mysql.cj.jdbc.Driver");
        // ② 使用DriverManager获取数据库连接
        final Connection connection = DriverManager.getConnection(url, user, pwd);
        // ③ 使用Connection来创建一个Statement对象
        final Statement statement = connection.createStatement();
        try (connection;statement){     // 因为使用了Java9自动增强的关闭资源的try语句，所以隐含写了finally，而catch、finally有一个即可
            // ④ 执行SQL语句，获得一个结果集
            ResultSet resultSet = statement.executeQuery(temp_select);

            // ResultSet有一系列的移动指针和获取数据的方法
            while (resultSet.next()){
                System.out.println(resultSet.getInt(1) + "\t"
                + resultSet.getString(2) + "\t"
                + resultSet.getString(3) + "\t"
                + resultSet.getString(4) + "\t");
            }
        }
    }
}
